package com.gem.day04;

import java.util.Arrays;

/**
 * 本类用来演示Java数组的定义
 * 
 * 数组:相同数据类型的数据按顺序排列的数据集合
 * 
 * @author easonsy
 * 2020年7月21日 上午10:22:24
 */
public class ArrayDemo {
	public static void main(String[] args) {
		/*
		 * 创建数组
		 * 数据类型[] 数组名 = new 数据类型[长度];
		 * 
		 * 注意:创建数组时如果没有给值,则系统会提供数组所有元素默认值
		 * 	整数类型0,浮点数类型0.0,布尔类型false,一切对象类型null
		 */
		//int[] arr = new int[3];
		//int arr[] = new int[3];

		//创建数组的同时直接赋值
		//int[] arr = new int[] { 1, 2, 3 };
		//简写
		int[] arr = { 1, 2, 3 };

		//访问数组
		//1.获取数组的长度
		System.out.println("arr数组的长度为: " + arr.length);

		//2.获取数组中的元素--通过下标来访问
		//注意:数组下标从0开始,到length-1结束
		System.out.println(arr[1]);//1号下标对应的是第二个元素

		//注意:访问数组时如果下标超过指定范围[0,length-1],
		//则代码将抛出异常:java.lang.ArrayIndexOutOfBoundsException,数组下标越界异常
		//System.out.println(arr[3]);//运行错误

		//通过下标也可以修改数组元素
		arr[1] = 8;

		/*
		 * 注意:数组是对象,它其中的元素可以是基本类型,也可以是对象类型;
		 * 所以对象类型直接打印会输出内存地址,除非经过输出处理(toString())
		 */
		//System.out.println(arr);

		//打印数组 -- 迭代/遍历
		//1.使用JDK内置工具类(java.util.Arrays)打印
		System.out.println(Arrays.toString(arr));

		//2.for循环
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}

		//3.增强for循环
		for (int i : arr) {
			System.out.println(i);
		}
	}
}
